import { NativeProps } from '../../utils/native-props'

export type IndexBarProps = {
  /** 是否开启锚点自动吸顶 即开启粘滞定位. default: `true` */
  sticky?: boolean;
  /** 锚点变化时回调. default: - */
  onIndexChange?: (index: string) => void;
  /** childern */
  children?: React.ReactNode;
} & NativeProps<'--sticky-offset-top'>

export type IndexBarRef = {
  scrollTo: (index: string) => void
}

export type IndexBarPanelProps = {
  /** 索引（不可以重复） */
  index: string
  /** 左侧主内容区的分组标题. default: 同 `index` */
  title?: React.ReactNode
  /** 右侧索引条中的显示内容. default: `index`的第一个字符 */
  brief?: React.ReactNode
  /** children */
  children?: React.ReactNode
} & NativeProps

export type SidebarProps = {
  indexItems: {
    /** 索引 */
    index: string
    /** 索引条中的显示内容 */
    brief: React.ReactNode
  }[]
  /** 当前索引 */
  activeIndex: string | null
  /** 触发索引回调 */
  onActive: (index: string) => void
}
